package logging

// CustomVariables .
type CustomVariables map[string]interface{}

// ServerEventsRequest .
type ServerEventsRequest struct {
	Events []ServerEventsData `json:"events" anker:"true" swaggo:"true,事件列表"`
}

// ServerEventsData .
type ServerEventsData struct {
	Name       string          `json:"name" anker:"true" swaggo:"true,事件名称"`
	Params     CustomVariables `json:"params" swaggo:"false,事件参数"`
	Properties CustomVariables `json:"properties" swaggo:"false,用户属性"`
}

// Device .
type Device struct {
	Os          string `json:"os" mark:"true,操作系统，如:ios"`
	Version     string `json:"version" mark:"true,系统（子）版本10.3.2"`
	AppVersion  string `json:"app_version" mark:"true,app版本号"`
	AppName     string `json:"app_name" mark:"true,app名称"`
	Model       string `json:"model" mark:"true,设备型号"`
	DeviceType  string `json:"device_type" mark:"true,设备类型 app/hub/ai"`
	AccountID   string `json:"account_id" mark:"true,账号id"`
	ProductName string `json:"product_name" mark:"true,产品名称"`
	DeviceSn    string `json:"device_sn" mark:"true,设备唯一标识"`
	StationSn   string `json:"station_sn" mark:"true,基站唯一标识"`
	Language    string `json:"language" mark:"true,设备语言"`
	Module      string `json:"module" mark"true, 模块"`
}

// Server .
type Server struct {
	Area      string `json:"area" mark:"true,area"`
	Hostname  string `json:"hostname" mark:"true,hostname"`
	RequestID string `json:"request_id" mark:"true,request_id"`
}

// DeviceLogging .
type DeviceLogging struct {
	Type        string            `json:"type" mark:"true,type"`
	Device      Device            `json:"device" mark:"true,device"`
	Server      Server            `json:"server" mark:"true,server"`
	TimeStamp   string            `json:"@timestamp" mark:"true,timestamp"`
	ServerEvent *ServerEventsData `json:"serverevent,omitempty" mark:"true, 服务端日志"`
}
